﻿using System;
using Resn.WhuPub.DML;

namespace Resn.WhuPub.BIL
{
        /// <summary>
        ///定义差旅的属性和方法
        /// </summary>
        public interface ITravel : IEntity
        {
                #region 属性

                #region 基本属性

                /// <summary>
                ///获取或设置员工标识
                /// </summary>
                /// <value>
                ///员工标识
                /// </value>
                String EmployeeId { get; }

                /// <summary>
                ///获取或设置计划内容
                /// </summary>
                /// <value>
                ///计划内容
                /// </value>
                String PlanContent { get; set; }

                /// <summary>
                ///获取或设置计划是否已审批
                /// </summary>
                /// <value>
                ///计划是否已审批
                /// </value>
                bool IsPlanApproved { get; set; }

                /// <summary>
                ///获取或设置计划修改意见
                /// </summary>
                /// <value>
                ///计划修改意见
                /// </value>
                String PlanModify { get; set; }

                /// <summary>
                ///获取或设置计划是否已确认
                /// </summary>
                /// <value>
                ///计划是否已确认
                /// </value>
                bool IsPlanConfirmed { get; set; }

                /// <summary>
                ///获取或设置计划借款金额
                /// </summary>
                /// <value>
                ///计划借款金额
                /// </value>
                Double LendAmount { get; set; }

                /// <summary>
                ///获取或设置开始时间
                /// </summary>
                /// <value>
                ///开始时间
                /// </value>
                DateTime StartTime { get; set; }

                /// <summary>
                ///获取或设置结束时间
                /// </summary>
                /// <value>
                ///结束时间
                /// </value>
                DateTime EndTime { get; set; }

                /// <summary>
                ///获取或设置备注
                /// </summary>
                /// <value>
                ///备注
                /// </value>
                String Memo { get; set; }

                #endregion

                /// <summary>
                ///获取差旅模型
                /// </summary>
                /// <value>
                ///差旅模型
                /// </value>
                TravelModel Model { get; }

                #endregion


                #region 方法

                /// <summary>
                /// 创建拜访
                /// </summary>
                /// <param name="contactId">联系人标识</param>
                /// <param name="startTime">开始时间</param>
                /// <param name="endTime">结束时间</param>
                /// <param name="visitType">拜访方式</param>
                /// <param name="objective">目的</param>
                /// <param name="keyPoints">要点</param>
                /// <param name="eatAmount">宴请金额</param>
                /// <param name="giftAmount">礼品金额</param>
                /// <param name="memo">备注</param>
                /// <returns>
                /// 创建的拜访对象
                /// </returns>
                ITravelVisit CreateTravelVisit(string contactId, DateTime startTime, DateTime endTime, VisitType visitType, string objective, string keyPoints, double eatAmount, double giftAmount, string memo);

                

                #endregion

        }
}